home *** CD-ROM | disk | FTP | other *** search
/ MACD 5 / MACD 5.bin / workbench / tools / czesc_3 / phoonsrc / inline_iff.h < prev    next >
C/C++ Source or Header  |  1992-09-08  |  3KB  |  132 lines

  1. /*
  2.  *  inline_iff.h
  3.  *
  4.  *  Created: Mon Jul 06 21:23:21 1992 too
  5.  *  Last modified: Tue Sep 08 16:27:56 1992 too
  6.  *
  7.  */
  8. #ifndef __INLINE_IFF_H
  9. #define __INLINE_IFF_H
  10.  
  11. #include <inline/stubs.h>
  12.  
  13. __BEGIN_DECLS
  14.  
  15. #ifndef BASE_EXT_DECL
  16. #define BASE_EXT_DECL extern struct Library * IFFBase;
  17. #endif
  18. #ifndef BASE_PAR_DECL
  19. #define BASE_PAR_DECL
  20. #define BASE_PAR_DECL0 void
  21. #endif
  22. #ifndef BASE_NAME
  23. #define BASE_NAME IFFBase
  24. #endif
  25.  
  26. static __inline void
  27.   IFFL_CloseIFF(BASE_PAR_DECL IFFL_HANDLE iff)
  28. {
  29.       BASE_EXT_DECL
  30.       register void *         a6  __asm ("a6");
  31.       register IFFL_HANDLE    a1  __asm ("a1");
  32.  
  33.       a6 = BASE_NAME;
  34.       a1 = iff;
  35.       __asm volatile ("
  36.       jsr a6@(-0x24)"
  37.       : /* no output */          
  38.       : "r" (a6), "r" (a1)
  39.       : "d0", "d1", "a0", "a1");
  40. }
  41.  
  42. static __inline BOOL
  43.   IFFL_DecodePic(BASE_PAR_DECL IFFL_HANDLE iff, struct BitMap *bitmap)
  44. {
  45.       BASE_EXT_DECL
  46.       register BOOL         res __asm ("d0");
  47.       register void *         a6  __asm ("a6");
  48.       register IFFL_HANDLE    a1  __asm ("a1");
  49.       register struct BitMap *    a0  __asm ("a0");
  50.  
  51.       a6 = BASE_NAME;
  52.       a1 = iff;
  53.       a0 = bitmap;
  54.       __asm volatile ("
  55.       jsr a6@(-0x3c)"
  56.       : "=r" (res)
  57.       : "r" (a6), "r" (a1), "r" (a0)
  58.       : "d0", "d1", "a0", "a1");
  59.       return res;
  60. }
  61.  
  62. static __inline struct IFFL_BMHD *
  63.   IFFL_GetBMHD(BASE_PAR_DECL IFFL_HANDLE iff)
  64. {
  65.       BASE_EXT_DECL
  66.       register struct IFFL_BMHD *    res __asm ("d0");
  67.       register void *             a6  __asm ("a6");
  68.       register IFFL_HANDLE        a1  __asm ("a1");
  69.       
  70.       a6 = BASE_NAME;
  71.       a1 = iff;
  72.       __asm volatile ("
  73.       jsr a6@(-0x30)"
  74.       : "=r" (res)
  75.       : "r" (a6), "r" (a1)
  76.       : "d0", "d1", "a0", "a1");
  77.       return res;
  78. }
  79.  
  80. static __inline IFFL_HANDLE
  81.   IFFL_OpenIFF(BASE_PAR_DECL char *filename, ULONG mode)
  82. {
  83.       BASE_EXT_DECL
  84.       register IFFL_HANDLE    res __asm ("d0");
  85.       register void *         a6  __asm ("a6");
  86.       register char *        a0  __asm ("a0");
  87.       register ULONG        d0  __asm ("d0");
  88.  
  89.       a6 = BASE_NAME;
  90.       a0 = filename;
  91.       d0 = mode;
  92.       __asm volatile ("
  93.       jsr a6@(-0x78)"
  94.       : "=r" (res)
  95.       : "r" (a6), "r" (a0), "r" (d0)
  96.       : "d0", "d1", "a0", "a1");
  97.       return res;
  98. }
  99.  
  100. static __inline BOOL
  101.   IFFL_SaveBitMap(BASE_PAR_DECL char *filename, struct BitMap *bitmap, WORD *colortable, LONG flags)
  102. {
  103.       BASE_EXT_DECL
  104.       register BOOL         res __asm ("d0");
  105.       register void *        a6  __asm ("a6");
  106.       register char *        a0  __asm ("a0");
  107.       register struct BitMap*    a1  __asm ("a1");
  108.       register WORD *        a2  __asm ("a2");
  109.       register LONG         d0  __asm ("d0");
  110.  
  111.       a6 = BASE_NAME;
  112.       a0 = filename;
  113.       a1 = bitmap;
  114.       a2 = colortable;
  115.       d0 = flags;
  116.       __asm volatile ("
  117.       jsr a6@(-0x42)"
  118.       : "=r" (res)
  119.       : "r" (a6), "r" (a0), "r" (a1), "r" (a2), "r" (d0)
  120.       : "d0", "d1", "a0", "a1");
  121.       return res;
  122. }
  123.  
  124. #undef BASE_EXT_DECL
  125. #undef BASE_PAR_DECL
  126. #undef BASE_PAR_DECL0
  127. #undef BASE_NAME
  128.  
  129. __END_DECLS
  130.  
  131. #endif /* _INLINE_IFF_H */
  132.